Skip to content
codeaz-orgPublic

About

Async standups for remote teams: record a short video, AI writes the check-in. Self-hostable, AGPL-3.0.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

Β 

History

163 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Asincly logo

Asincly

Async standups for remote teams. Talk for two minutes in your own morning; AI writes the check-in; your team reads it in theirs. No meeting, nothing missed.

License: AGPL v3 CI Self-hostable Release PRs welcome

Try Asincly Cloud Β· Features Β· Quick start Β· Deploy for free Β· Architecture Β· Contributing

Recording a check-in: notes beside the camera, a short recording, the AI-drafted check-in with teammates tagged, then sent to the team's feed

Record β†’ AI drafts yesterday / today / blockers and tags teammates β†’ review β†’ send. (Demo data, fake camera.)


Why

A daily standup at 09:30 in New York is 22:30 in Tokyo and 01:30 in Auckland. Someone is always awake at the wrong time. Written standups fix that, but nobody likes typing them and half the context never makes it in.

Asincly lets each person record a short video whenever their day starts. The AI turns it into yesterday / today / blockers, ticks off last time's plan, tags the teammates you mentioned and flags blockers. The team reads a calm, one-screen digest instead of meeting.

How it works

  1. Your window opens in your own time zone. You get a reminder (in-app, email or Slack).
  2. Talk for two minutes with your last plan and your notes on screen, or write it instead.
  3. The AI drafts it, you fix it and send. Teammates read it when their day starts: a summary, the full note, the video on tap. Blockers, mentions, replies and reactions notify the right people.

The Today dashboard: a day rail showing every teammate at their local time, blockers that need attention and check-in cards

Features

Record instead of type

Recording screen with last time's plan, open blockers and private notes beside the camera

  • Video first: camera or screen + camera, up to 10 minutes; works on phones.
  • Your previous plan on screen while you talk: tap items as done or still going, or just say it.
  • Private notes: jot talking points beforehand so you don't forget anything.
  • Write it instead: a guided yesterday β†’ today β†’ blockers flow for days you'd rather type.

AI writes the check-in

Review screen: the AI drafted yesterday, today and a blocker, and tagged two teammates

  • Transcription: Whisper transcribes an audio-only track, so uploads stay small.
  • Uses your plan: the draft marks last time's tasks done, carries unfinished ones forward, and adds new work and blockers.
  • Auto-tagging: teammates you mention are tagged automatically; remove a tag with one tap before sending.
  • Your words win: anything you already typed is kept, with a "use AI version" option.
  • Pluggable AI: Groq by default. Without a key, or with AI turned off for a team or a person, videos still upload and people write the check-in themselves.

A dashboard that respects time zones

Check-in cards with Slack-style emoji reactions and the emoji picker open Today dashboard on a phone with the bottom navigation
  • Day rail: everyone placed at their local time, with the check-in window as a band. You can see who's asleep, who's in their window and who's done.
  • Needs attention: open blockers with I can help / Resolved, mentions of you and replies to your check-in.
  • Summary-first cards: full note, video on tap, Slack-style emoji reactions and replies with :shortcode: autocomplete.
  • Not in yet: see who hasn't checked in, nudge people whose window is open, and set yourself away, which pauses reminders.

Mentions, notifications, live

Typing @k in a check-in opens a teammate picker with avatars The inbox: grouped reactions, a mention, a reply and an offer of help
  • @-mentions like Linear: type @ for a teammate picker, in check-ins and replies; a typed @name links too. The person named gets notified.
  • One notification per thing: reactions to your check-in or reply group into one ("Sam, Kenji and 1 other reacted Β· πŸ™Œ πŸŽ‰"); replies, mentions, blockers on you and offers of help each have their own.
  • Live: feeds, replies, reactions and the inbox update without a reload.

Team rules, people and settings

People page ordered by who's furthest into their day Settings with the Require a video rule, schedules and data controls
  • Require video (owners and admins): members who can't record pick a reason, and admins see it.
  • Schedules: any number per team (daily, weekdays, MΒ·WΒ·F, weekly, custom RRULE). Each has a window in every member's local time.
  • Invitations: invitees accept before they join; admins see who's pending and can revoke.
  • Notifications: in-app and email, for window open, mentions, blockers, replies, reactions, offers of help and nudges.
  • Data controls: export everything as JSON, set recording retention, hard-delete a team or organization.

Private by design

  • Tenant isolation in the database: every request runs under Postgres row-level security as the signed-in person.
  • Encryption at rest: transcripts, summaries and AI drafts are encrypted (with a rotatable key); 2FA, SSO enforcement and session management for admins.
  • Media never passes through the app server: browsers upload with pre-signed URLs and play back via short-lived signed links.
  • Hardening: audit log, rate limits, strict CSP, Zod validation on every input.
  • Open source (AGPL-3.0) and self-hostable with Docker Compose.

Quick start

Prerequisites: Node.js 22+, pnpm 12 (npm i -g corepack@latest && corepack enable), and Docker.

git clone https://github.com/codeaz-org/asincly.git
cd asincly
pnpm install
cp .env.example .env          # set AUTH_SECRET, DATA_ENCRYPTION_KEY, CRON_SECRET (openssl commands inside)
pnpm db:up                    # Postgres + MinIO in Docker
pnpm db:migrate
pnpm db:seed                  # optional: a demo team across 9 time zones
pnpm dev                      # http://localhost:3000

Sign in at http://localhost:3000/sign-in. Without a RESEND_API_KEY, the magic link is printed in the terminal running pnpm dev. With the demo seed, sign in as demo@asincly.local and open /northwind/product.

AI drafts: add a free Groq key as GROQ_API_KEY. To try the flow without a key, start the dev server with AI_FAKE=1 pnpm dev for deterministic fake drafts.

Testing on your phone: cameras need HTTPS. Run pnpm dev --experimental-https, and add your LAN IP to DEV_ALLOWED_ORIGINS.

Deploy

Don't want to run it? Use Asincly Cloud (free for up to 3 people). Want to host it yourself for free? Yes, two ways:

Option Cost Hosting provider allows business useΒΉ Guide
Vercel Hobby + Neon + Backblaze B2 / Cloudflare R2 + Resend + Groq + GitHub Actions $0 ❌ Vercel Hobby is personal use only Path A
Oracle Cloud Always Free VM + Docker Compose $0 βœ… Path B
Hetzner CX23 (or any 2 GB VPS) + Docker Compose ~€5.50/mo βœ… Path C
Vercel Pro + Neon + R2 ~$20+/mo βœ… Path D

ΒΉ This column is about the hosting provider's terms (Vercel's free Hobby plan is for personal use). Asincly's own license allows commercial use in every option β€” see License.

One-machine self-host with automatic HTTPS:

cp .env.example .env   # fill in the "Docker self-host" section
docker compose -f docker-compose.selfhost.yml --profile https up -d --build

Full guide, limits, CORS and troubleshooting: docs/DEPLOYMENT.md.

Configuration

The essentials. Everything is documented in .env.example.

Variable Required Purpose
NEXT_PUBLIC_APP_URL, AUTH_URL βœ… Public URL of your deployment
DATABASE_URL βœ… Postgres owner/admin role (migrations, trusted reads)
DATABASE_URL_APP + APP_DB_PASSWORD βœ… Non-superuser role subject to row-level security
AUTH_SECRET βœ… Session signing
DATA_ENCRYPTION_KEY βœ… 32-byte base64 key for encrypted transcripts and drafts
S3_* βœ… Any S3-compatible bucket (MinIO, R2, B2, S3)
CRON_SECRET βœ… Protects /api/cron/tick (reminders, digests) and /api/cron/daily (retention, cleanup)
RESEND_API_KEY, EMAIL_FROM Production Magic-link sign-in and notification emails
GROQ_API_KEY Optional Video transcription and AI drafts
AUTH_GOOGLE_ID, AUTH_GOOGLE_SECRET Optional Google sign-in
NEXT_PUBLIC_SOURCE_URL If you modify the code Link to your fork's source (AGPL Β§13)
SLACK_CLIENT_ID, SLACK_CLIENT_SECRET Optional Slack digest and DM reminders (docs/SLACK.md)
BILLING_ENABLED, STRIPE_* Hosted cloud only Plans and Stripe billing. Leave unset when self-hosting

Tech stack

  • Frontend and app: Next.js 16 (App Router, React 19, TypeScript strict), Tailwind CSS 4, Base UI
  • Data: Postgres + Drizzle ORM (SQL migrations with FORCE RLS), Auth.js (magic link, Google)
  • Media: S3-compatible storage with pre-signed uploads (MinIO locally), MediaRecorder video and audio
  • AI and email: Groq (Whisper + Llama) behind a pluggable provider interface; Resend
  • Tests: Vitest (unit and RLS), Playwright (end-to-end with a fake camera and fake AI)

Scripts

Command What it does
pnpm dev Start the app on :3000
pnpm db:up / pnpm db:down Start/stop local Postgres + MinIO
pnpm db:migrate Apply migrations (and set the app role's password)
pnpm db:seed Load the demo workspace (local databases only)
pnpm db:generate Create a migration from src/db/schema.ts
pnpm db:studio Browse the database
pnpm test Unit + row-level security tests
pnpm e2e Playwright (AI_FAKE=1 pnpm dev first; PW_CHANNEL=chrome to use installed Chrome)
pnpm lint / pnpm typecheck ESLint / TypeScript
pnpm emoji:sync Refresh the self-hosted emoji dataset
pnpm cron:local Fire one scheduler tick against localhost

Roadmap

See ROADMAP.md and CHANGELOG.md. Next up:

  • Slack /standup text check-in
  • Web push / PWA
  • More AI providers (OpenAI, Anthropic, local Whisper)

Hosted version

Asincly Cloud is the same open-source code, run by the maintainers so you don't have to. Revenue from it funds development. Sign up at asincly.codeaz.org.

Free Pro
Price €0 €8 per member / month (€80 / year)
Members Up to 3 Unlimited (billed per member)
Teams 1 Unlimited
AI video minutes 30 / month 600 per member / month
Video length 3 min 10 min
History 14 days Your retention setting
Guests (read-only, free seats) β€” βœ“
Slack digest & reminders β€” βœ“
"Require a video" rule, multiple schedules β€” βœ“
Data export βœ“ βœ“

Every new organization gets a 14-day Pro trial, no card required.

Self-hosting is not limited: plans and limits only exist when BILLING_ENABLED=true, which is how the cloud runs. Your own install has every feature, free, with no license key. Running your own paid service on Asincly? See Billing.

Contributing

Contributions are welcome β€” bug reports, docs, translations and code. Read CONTRIBUTING.md for setup, conventions and how tests run. Please report security issues privately as described in SECURITY.md.

License

Copyright Β© 2026 the Asincly contributors.

Asincly is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License v3.0 or later. See LICENSE.

License FAQ

Can my company use Asincly commercially? Yes. Use it at work, self-host it for your company or your clients, charge for it. The AGPL doesn't restrict commercial use.

Can I sell hosting or services around it? Yes, including a competing hosted service. The condition: if you run a modified version for users over a network, you must offer those users the source of your modifications under the AGPL. Set NEXT_PUBLIC_SOURCE_URL to your fork so the in-app "Source code" link points to it.

Do I have to publish anything if I just self-host it unmodified? No.

Can I modify it privately for internal use? Yes. Obligations only apply when you give the software to others or let people outside your organization use a modified version over the network.

Can I embed it in a closed-source product? Not under the AGPL. Anything you combine it with and distribute or offer over a network must be AGPL-compatible. Open an issue if you need something else.

This FAQ is a plain-language summary, not legal advice; the LICENSE is what counts.

Third-party components and their licenses are listed in THIRD_PARTY_NOTICES.md.

About

Async standups for remote teams: record a short video, AI writes the check-in. Self-hostable, AGPL-3.0.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages