Software built for your business
We study, design, build and run it around how your business works.
-- Membership check lives in the private schema, never exposed through the public APIcreate or replace function private.is_tenant_member(p_tenant_id uuid)returns boolean language sql security definer set search_path = public stable as $$ select exists ( select 1 from public.members m where m.tenant_id = p_tenant_id and m.user_id = auth.uid() );$$; -- Read: any member of the tenant. Write: owners and admins onlycreate policy profiles_select on public.profiles for select to authenticated using (private.is_tenant_member(tenant_id)); create policy profiles_write on public.profiles for all to authenticated using (private.is_tenant_editor(tenant_id)) with check (private.is_tenant_editor(tenant_id));- 100%
- of source code and data handed over to you
- 3
- separate environments: development, staging, production
- 2 weeks
- per sprint, each ending with working software
- Daily
- backups, with tested restores
This is how we write code
4 excerpts from Click Star’s own product repositories, trimmed for length with the logic untouched. Each says why it exists.
-- Membership check lives in the private schema, never exposed through the public APIcreate or replace function private.is_tenant_member(p_tenant_id uuid)returns boolean language sql security definer set search_path = public stable as $$ select exists ( select 1 from public.members m where m.tenant_id = p_tenant_id and m.user_id = auth.uid() );$$; -- Read: any member of the tenant. Write: owners and admins onlycreate policy profiles_select on public.profiles for select to authenticated using (private.is_tenant_member(tenant_id)); create policy profiles_write on public.profiles for all to authenticated using (private.is_tenant_editor(tenant_id)) with check (private.is_tenant_editor(tenant_id));This guarantees
One tenant can never read another’s data, even if an application bug slips through. The block sits in the database.
- 48
- numbered SQL migrations in the CDP repository
- 246
- permission tests for the ad-operations system
- 7
- test suites, run on a simulated database
- 187
- commits in the CDP repository, each a reversible change
Measured from the repositories on 18 Oct 2026. Tests never touch real data.
One request, 6 checkpoints
The code above lives at these checkpoints. The order is fixed: a later check never replaces an earlier one.
Swipe sideways to see the full diagram
A reference architecture for every project
A shared starting point, then tailored to your workflows. AI models and external systems are called from the server only, never from the browser.
Swipe sideways to see the full diagram
The database is the last gate
Access is bound by Row Level Security, so an application bug cannot leak data.
Every change leaves a trace
An append-only log records who did what and when. Nobody can edit or delete it, admins included.
Separate environments from day one
Development, staging and production are three separate environments. Real data never appears in the first two.
Mainstream, strongly typed technology
We choose technology with a large community and a long lifespan, so the system stays easy to staff and maintain for years.
| Frontend | Next.js · React · TypeScript |
| Backend | Node.js · TypeScript · REST / Webhook |
| Database | PostgreSQL · Row Level Security |
| Hosting | Vercel |
| Automation | Click Star Automation · Cron · Queue |
| AI (when needed) | OpenAI · Claude · Gemini |
Off-the-shelf tools no longer fit the way you operate
The first conversation may well conclude that you don't need custom software yet. If an existing tool is enough, we will say so.
- 01
Data is scattered across spreadsheets and chat groups
Reports are compiled by hand and figures differ between teams.
- 02
Your current software lacks your specific workflows
Teams work around the system, or pay for features nobody uses.
- 03
Systems don't talk to each other
CRM, accounting, inventory and the website each hold their own data, so staff re-enter it.
- 04
You need tighter security and access control
You need fine-grained roles per branch and a full record of who viewed or changed what.
The systems we design and operate
Internal operations systems
Multi-level approvals, orders, inventory, HR and task flows that match your org structure.
CRM and client portals
Customer management built on your own sales pipeline, plus portals where clients and resellers serve themselves.
Reporting and dashboards
Data from many sources in one place, with reports that refresh themselves and show each manager only their scope.
Mobile-ready web apps
Works on desktop and phone, and installs to the home screen like an app.
System integration
API connections to the tools you already use, with automatic sync instead of manual entry.
Applied AI in workflows
Document extraction, call analysis and internal search assistants. Your data is not used to train models.
Premium AI models, tightly controlled
We use the leading models from Anthropic (Claude), OpenAI (GPT) and Google (Gemini), chosen per task. The model is one step in a verified workflow, not a black box wired straight into your data.
Swipe sideways to see the full diagram
The right model for the job
Reasoning-heavy work such as reading contracts or analysing calls uses a top-tier model. Repetitive work such as classification uses a fast model to keep cost down. A fallback covers provider outages.
Answers only from approved data
Retrieval from an approved knowledge base, filtered by the asker’s permissions, with cited sources. Unanswered questions are logged for follow-up instead of letting the model guess.
Structured, verified output
Results follow a fixed schema and are validated before they touch your system. Below a confidence threshold, or when data is sensitive, a person reviews it.
Your data stays protected
Sensitive fields are masked before sending. API keys live on the server only. Your data is not used to train models.
Cost and quality you can measure
Every call logs the prompt version, tokens, cost and reviewer. Monthly budgets are set, and quality is compared before any model change.
Already built, not a concept
- Website assistant answering from an approved knowledge base and sending leads to the CRM
- Call analysis: transcription, scoring, writing straight into the CRM
Some of the systems we have built
Client names are withheld for confidentiality. The images are redrawn illustrations with sample data, not screenshots of client systems.
Education · multi-campus
Ad performance command center
Problem
Ad budgets were split across many campuses, each reporting in its own spreadsheet. Management often learned a campus was underperforming only at month end.
What we built
The system pulls ad data on a schedule, joins it with leads and enrolments, compares campuses side by side and puts the decisions that need attention first.
- Automatic Meta Ads cost sync, no manual entry
- Rule-based alerts that open an issue with a named owner
- Access control enforced in the database, with its own test suite
Next.js · PostgreSQL · Meta Marketing API
Education
Customer data platform (CDP)
Problem
One person's details were spread across web forms, the CRM, the chatbot and event lists, so the same person could receive duplicate messages.
What we built
One profile per person, behavioural segments, Email, Web Push and Zalo ZNS sending, and automated journeys with lead scoring.
- Identity resolution across sources
- Suppression lists and unsubscribe pages
- Audit log and role-based permissions
Next.js · PostgreSQL · Web Push · Zalo ZNS
Corporate · marketing team
Work and performance management
Problem
Tasks were assigned in chat groups, deadlines slipped, and team leads compiled weekly reports by hand.
What we built
Tasks, projects, meetings and reports in one system. Each person sees their own work and leads see the whole team.
- 3 roles (admin, lead, member) with distinct permissions
- Task visibility enforced at the database layer
- Recurring tasks created on schedule
Next.js · PostgreSQL · Realtime
Education · admissions website
Cookie consent and personal data management
Problem
The website ran several analytics and ad tags. It had to ask for consent before collecting data and keep proof for regulators.
What we built
A purpose-based consent banner that enables tags only after the visitor agrees, plus an admin view of consent rates by day and device.
- Hash-chained evidence log that detects edited or deleted records
- Automatic clean-up by retention period
- IP addresses and browser details masked in the admin view
Next.js · PostgreSQL · Google Consent Mode
Education · admissions
AI assistant on the website
Problem
Parents asked questions after hours, many of them repeated, and leads from chat were not captured properly.
What we built
A chatbot that answers from an approved knowledge base for each campus, contact buttons that adapt to the page, and leads sent straight to the CRM.
- Unanswered questions logged as knowledge gaps
- Staff can take over a conversation for live support
- Chat-to-lead conversion reported by source
Next.js · PostgreSQL · Claude API · CRM API
Education · events
Event registration and QR check-in
Problem
Busy events relied on paper lists at the desk, which was slow and gave no accurate attendance count.
What we built
A registration page that emails a QR ticket, a scanner screen for desk staff, and a check-in count that updates on every scan.
- Personal data consent captured on the registration form
- Scans with a phone camera, no dedicated scanner needed
- Manual lookup when a guest has no code
Next.js · PostgreSQL · Email
10+ years building systems for businesses
Click Star’s engineers have worked with 100+ Vietnamese businesses across education, healthcare, retail, e-commerce and premium services.
- 10+
- years in Marketing, CRM and process systems
- 100+
- businesses served
- 5
- sectors: education, healthcare, retail, e-commerce, premium services
Software engineers
Write and maintain application code, integrations and performance.
Data and security engineers
Design data models, Row Level Security and access tests.
AI engineers
Select models, build retrieval and measure quality and cost.
Product designers
Design workflows and clickable prototypes before any code is written.
QA
Functional, performance and permission testing, then acceptance with real users.
Operations
Monitoring, backups, restore drills and incident response after handover.
Engineering habits we do not skip
- Every change is reviewed by a second engineer before merge
- Automated checks before staging: types, lint, tests and a full build
- Permission tests run on a simulated database, never on real data
- Major architecture decisions are written down, so whoever takes over knows why
Swipe sideways to see the full diagram
Security designed in from the start, not patched on later
These controls are the default on every project, not an upgrade. The exact scope is written into the handover documents so your own team can verify it.
Data protection
- Encryption in transit (TLS) and at rest
- Tenant and branch isolation enforced in the database
- Sensitive fields masked on screen and in exports
Access control
- Role-based permissions, checked on the server
- Two-factor authentication for admin accounts
- Login rate limiting and session expiry
Audit trail
- Who did what, when, to which record
- Append-only logs that cannot be edited or deleted
- Exportable for reconciliation or audits
Secure code
- Every change reviewed by a second engineer before merge
- Tested against the OWASP Top 10 before handover
- Secrets never stored in the codebase
Infrastructure
- Staging fully separated from production
- Automated backups with point-in-time recovery
- Hosting in Singapore or Vietnam as required
Compliance
- Designed around Vietnam's Decree 13/2023 on personal data protection
- NDA signed before detailed discussions
- Support with data processing impact assessments
The system has to keep running after handover
Most of a system's lifetime cost sits in operation. We plan for it from the design stage.
Monitoring and alerts
Uptime, errors and response times are tracked, so engineers are alerted before users have to report a problem.
Safe releases
Each change ships to staging first, you approve it through a link, and only then does it reach production. Rolling back takes minutes.
Backup and recovery
Automatic daily backups, with restores rehearsed regularly so we know they work when needed.
Runbooks
Architecture docs, incident procedures and runbooks are handed over, so your team or another vendor can take over.
Incident response
Applies during warranty and on operations plans
| Severity | Example | Response |
|---|---|---|
| P1 | System down, data exposure | within 1 hour |
| P2 | A core feature is unavailable | within 4 hours |
| P3 | Minor issue with a workaround | 1 business day |
Monthly operations report
- Uptime and incidents resolved
- Security patches and dependency updates applied
- Backup status and the latest restore test
- Recommendations on performance and hosting cost
From understanding the need to a system running in production
Every phase ends with a sign-off. The next phase doesn't start until the previous one is approved.
- 01
Discovery
Sessions with leadership and real users to map current workflows.
Scope and quote approved - 02
Solution design
Architecture, data model, permissions and a clickable prototype.
Design approved - 03
Iterative build
2-week sprints, each closing with a demo on staging.
Approved every sprint - 04
Testing and security review
Functional, performance and permission testing; user acceptance by real users.
Acceptance signed - 05
Launch and handover
Go-live, legacy data migration and user training.
Full handover - 06
Operate and maintain
Monitoring, security patching and new features as needs evolve.
Monthly reporting
| Phase | What you receive | What we need from you | Duration |
|---|---|---|---|
| Discovery | Requirements, scope and a fixed quote | 2–3 working sessions, current forms and files | 1–2 weeks |
| Design | Architecture diagram, permission matrix, prototype | Feedback on the prototype | 2–3 weeks |
| Build | Updated staging build each sprint, progress reports | Attend demos, give feedback within the sprint | by scope |
| Testing | Test report and security review | Key users for acceptance testing | 1–2 weeks |
| Handover | Source code, documentation, admin access, training | Legacy data to migrate, training schedule | about 1 week |
You fully own the system
Source code
The repository is in your name, with its full change history.
Infrastructure
Hosting, database and domain accounts belong to you.
Documentation
Architecture, API, data model, runbooks and incident procedures.
No lock-in
Mainstream technology that your team or another vendor can take over.
Pick the model that fits where you are
| Fixed-scope projectA system with a clear scope | Dedicated teamA product in continuous development | Operations and maintenanceAn existing system that must run reliably | |
|---|---|---|---|
| Pricing | Fixed quote after discovery | Monthly, by team size | Monthly, by response commitment |
| Best when | Needs are known and the budget must be fixed | Requirements evolve often and speed matters | The system is critical and must not go down |
| Includes | All 6 phases, warranty after acceptance | Engineering, design, QA, regular reporting | Monitoring, patching, backups, monthly report |
Fixed-scope project
A system with a clear scope
- Pricing
- Fixed quote after discovery
- Best when
- Needs are known and the budget must be fixed
- Includes
- All 6 phases, warranty after acceptance
Dedicated team
A product in continuous development
- Pricing
- Monthly, by team size
- Best when
- Requirements evolve often and speed matters
- Includes
- Engineering, design, QA, regular reporting
Operations and maintenance
An existing system that must run reliably
- Pricing
- Monthly, by response commitment
- Best when
- The system is critical and must not go down
- Includes
- Monitoring, patching, backups, monthly report
Questions businesses usually ask
A first version with the core features usually takes about 6 to 10 weeks, depending on scope. The process is discovery 1 to 2 weeks, design 2 to 3 weeks, build in 2-week sprints (duration depends on scope), testing 1 to 2 weeks and handover about 1 week. Every change goes to a test environment for you to approve before it reaches the live system.
Talk to us about the system you need
The first conversation takes 60 minutes, free of charge. Afterwards you receive an initial view on scope, risks and the right way to proceed.
hotline 0383 406 735 · [email protected]