What Are Projects?
Projects in Off Grid are custom system prompts that define how the AI behaves in conversations. Each project can have:- Custom system prompt - Instructions that guide the AI’s behavior
- Name and description - Easy identification and organization
- Color icon - Visual distinction in the UI
- Persistent behavior - Project settings persist across conversations
src/stores/projectStore.ts:4-16, projects are defined as:
Default Projects
Off Grid includes four example projects to get you started:1. General Assistant
System Prompt (fromsrc/stores/projectStore.ts:20-28):
2. Spanish Learning
System Prompt (fromsrc/stores/projectStore.ts:29-45):
3. Code Review
System Prompt (fromsrc/stores/projectStore.ts:46-63):
4. Writing Helper
System Prompt (fromsrc/stores/projectStore.ts:64-81):
Creating Projects
Enter Project Details
- Name: Short, descriptive name (e.g., “Technical Writer”)
- Description: What this project is for (e.g., “Help with technical documentation”)
- Icon Color: Choose a color for visual distinction
Write System Prompt
Define how the AI should behave:
- Be specific about role and expertise
- Include guidelines and constraints
- Specify output format if needed
- Set tone and style expectations
System Prompt Best Practices
Example System Prompts
Personal Journal Analyst:Use Cases
FromARCHITECTURE.md:816-877, here are real-world use cases:
Code Review and Debugging
Scenario: Developer needs code assistance without sharing proprietary code with cloud services. Implementation:- Download Qwen 3 Coder A3B or Phi-4 Mini (Q4_K_M)
- Create “Code Review” project with system prompt
- Paste code snippets, receive suggestions
- All code stays on device
Language Learning Practice
Scenario: Language learner practices conversations without subscription or data harvesting. Implementation:- Download multilingual model (Qwen3, Command-R)
- Create project: “You are a patient Spanish tutor…”
- Voice input via Whisper for pronunciation practice
- Text responses for grammar explanation
Document Analysis with Vision
Scenario: User needs to analyze receipts, invoices, or documents on the go without internet. Implementation:- Download SmolVLM-500M (vision model, ~600MB)
- Create project: “You are a document analyzer. Extract key information…”
- Capture document photo via camera
- Send to model with prompt: “Extract all line items and totals”
- Receive structured text response
Writing and Editing
Scenario: Writer needs help with brainstorming, editing, and tone adjustment. Implementation:- Download any capable text model (3B+ recommended)
- Create “Writing Helper” project
- Paste drafts, get suggestions
- Iterate on feedback
Switching Between Projects
Projects are per-conversation. You can have multiple conversations active simultaneously, each with different projects.
Project Persistence
Fromsrc/stores/projectStore.ts:83-147:
Projects are stored in Zustand with AsyncStorage persistence:
- ✅ Survives app restarts - Projects persist across app launches
- ✅ Automatic save - Projects saved on create/update/delete
- ✅ Automatic rehydration - Projects loaded on app launch
- ✅ Backup included - Projects backed up with OS device backup (if enabled)
src/stores/projectStore.ts:7-16):
createProject()- Create new project with auto-generated ID and timestampsupdateProject()- Update existing project (auto-updatesupdatedAttimestamp)deleteProject()- Delete project by IDgetProject()- Retrieve project by IDduplicateProject()- Clone existing project with “(Copy)” suffix
Managing Projects
Editing a Project
When you update a project, the change affects all future messages in conversations using that project. Previous messages remain unchanged.
Duplicating a Project
Fromsrc/stores/projectStore.ts:123-140:
Project Cloned
A copy is created with:
- Same system prompt, description, and icon
- Name suffixed with “(Copy)”
- New unique ID and timestamps
Deleting a Project
Advanced Project Patterns
Multi-Turn Task Templates
Create projects that guide multi-step workflows:Output Format Enforcement
Force consistent output structure:Personality Customization
Define specific communication styles:Domain Expertise Simulation
Create expert personas:Project Limitations
Model Size Constraints
Smaller models (0.5B-3B parameters) may struggle with:- Complex multi-step instructions
- Nuanced tone requirements
- Strict output format adherence
- Deep domain expertise simulation
System Prompt Length
Very long system prompts consume context window space:- Short prompt (50 tokens): Minimal impact
- Medium prompt (200 tokens): Moderate impact
- Long prompt (500+ tokens): Significant context reduction
If you have a 2048 token context window and a 500 token system prompt, you only have ~1500 tokens left for conversation history and responses.
Project Scope
Projects affect system prompt only. They do NOT control:- Model selection (choose model separately)
- Generation parameters (temperature, max tokens, etc.)
- Tools availability (configured in settings)
- Image generation behavior
Best Practices Summary
Effective System Prompts
✅ Be specific about role and expertise ✅ Use structured guidelines (bullets, numbered lists) ✅ Define success criteria (what good output looks like) ✅ Set constraints (what NOT to do) ✅ Specify output format if consistency matters ✅ Test with your target model (smaller models need simpler prompts)Project Organization
✅ Use descriptive names (“Code Review (Python)” vs “Project 1”) ✅ Write clear descriptions (future you will thank you) ✅ Choose distinct icon colors (visual scanning) ✅ Duplicate for variations (don’t recreate from scratch) ✅ Delete unused projects (reduce clutter)Performance Considerations
✅ Keep prompts concise for smaller models ✅ Test prompt effectiveness with sample conversations ✅ Monitor context usage (Settings → Device Info) ✅ Adjust model size if needed (larger models handle complex prompts better)Troubleshooting
AI Not Following System Prompt
- Simplify the prompt - Try shorter, more direct instructions
- Use a larger model - Smaller models struggle with complex prompts
- Be more explicit - Spell out every expectation
- Test incrementally - Add guidelines one at a time to find what works
System Prompt Too Long
- Reduce to essentials - Cut unnecessary examples and explanations
- Use bullet points - More concise than paragraphs
- Increase context length - Settings → Model Settings → Context Length
- Split into multiple projects - Create focused projects for different tasks
Inconsistent Output Format
- Use explicit templates - Show the exact format in the system prompt
- Repeat format instructions - Say “Always use this format” or “Never deviate”
- Test with larger model - Better instruction following
- Add format enforcement - Start responses with format markers
Additional Resources
- Store Implementation: See
src/stores/projectStore.tsfor complete project state management - Default Projects: See
src/stores/projectStore.ts:18-81for example system prompts - Use Cases: Review
ARCHITECTURE.md:816-877for real-world scenarios