[{"data":1,"prerenderedAt":526},["ShallowReactive",2],{"notebook-all":3},[4],{"id":5,"title":6,"body":7,"description":489,"extension":490,"log":491,"meta":513,"navigation":514,"opened":493,"path":515,"readingTime":516,"seo":517,"stage":518,"stem":519,"tags":520,"__hash__":525},"notebook\u002Fnotebook\u002Fexp-001-voku-built-with-agents.md","From one café to three products: building Voku with agents",{"type":8,"value":9,"toc":472},"minimark",[10,15,19,40,44,47,86,89,93,96,101,104,153,156,160,171,175,178,236,239,243,250,276,279,283,292,332,336,339,346,393,399,402,425,428,434,438,441,451,459,463,466,469],[11,12,14],"h2",{"id":13},"where-it-started","Where it started",[16,17,18],"p",{},"It started with a café. Felipe Schneeberger bought one and needed a system to run it: sales, the kitchen, inventory, the cash register.",[16,20,21,22,29,30,35,36],{},"There was no shortage of options: apps like ",[23,24,28],"a",{"href":25,"rel":26},"https:\u002F\u002Ffu.do",[27],"nofollow","Fudo"," and ",[23,31,34],{"href":32,"rel":33},"https:\u002F\u002Fwww.toteat.com",[27],"Toteat"," already do this in Chile. So the question wasn't \"how do we get a point of sale?\". It was this: ",[37,38,39],"strong",{},"can agents build something better than what's on the market, and cover everything a business needs to run?",[11,41,43],{"id":42},"one-business-three-products","One business, three products",[16,45,46],{},"Running a business is more than selling. Once the point of sale existed, two more needs showed up, and each one became its own product:",[48,49,50,66,76],"ul",{},[51,52,53,60,61,65],"li",{},[37,54,55],{},[23,56,59],{"href":57,"rel":58},"https:\u002F\u002Fvoku.cl",[27],"Voku"," (",[62,63,64],"em",{},"\"Todo tu negocio, una sola plataforma.\"","): point of sale and management in the browser. Sales, kitchen screens, tables, inventory, recipes, cash and reports, with Uber Eats and PedidosYa orders going straight to the kitchen.",[51,67,68,75],{},[37,69,70],{},[23,71,74],{"href":72,"rel":73},"https:\u002F\u002Fvoku.team",[27],"Voku Team",": people management. Attendance and shifts, and a portal where workers find their documents and sign their contracts.",[51,77,78,85],{},[37,79,80],{},[23,81,84],{"href":82,"rel":83},"https:\u002F\u002Fdte.voku.cl",[27],"Voku DTE",": the connection with the SII, Chile's tax authority. It issues electronic receipts and invoices, signs them and sends them.",[16,87,88],{},"The brand, the three products and their landing pages were all built with agents. Voku is live. Voku Team and Voku DTE are going through their certifications with the Dirección del Trabajo and the SII, and the log at the end of this entry will say when each one is done.",[11,90,92],{"id":91},"the-research-came-first","The research came first",[16,94,95],{},"Each product sits on top of rules that are easy to get wrong. The agents researched the laws behind attendance records and electronic signatures, and the SII's technical manuals and schemas.",[97,98,100],"h3",{"id":99},"attendance","Attendance",[16,102,103],{},"In Chile, an electronic attendance system can't simply record times. In April 2024 the Dirección del Trabajo set the requirements in Resolución Exenta N°38:",[48,105,106,123,133,143,150],{},[51,107,108,109,112,113,116,117,122],{},"The system has to be ",[37,110,111],{},"certified by an independent company"," (not the developer, the seller or the employer) and ",[37,114,115],{},"authorized by the Dirección del Trabajo",". The DT ",[23,118,121],{"href":119,"rel":120},"https:\u002F\u002Fdt.gob.cl\u002Flegislacion\u002F1624\u002Fw3-article-127049.html",[27],"does not certify systems itself",".",[51,124,125,126,129,130,122],{},"Every clock-in produces a ",[37,127,128],{},"receipt"," the worker can access, and the employer keeps ",[37,131,132],{},"daily reports",[51,134,135,136,139,140,122],{},"Records must be protected against ",[37,137,138],{},"changes after the fact",", and kept available for ",[37,141,142],{},"up to five years",[51,144,145,146,149],{},"Labor inspectors get their own ",[37,147,148],{},"inspection portal"," with access to the data.",[51,151,152],{},"Workers are alerted when they forget to clock in or out, and employers about excessive hours, rest days and the right to disconnect.",[16,154,155],{},"Voku Team is going through that certification now.",[97,157,159],{"id":158},"electronic-signatures","Electronic signatures",[16,161,162,163,166,167,170],{},"To sign contracts inside Voku Team, the agents had to check what makes an electronic signature valid. Under Ley 19.799, a ",[37,164,165],{},"simple electronic signature"," is enough for most labor documents. An ",[37,168,169],{},"advanced"," signature is only required where the law asks for it, such as public instruments. The Dirección del Trabajo has accepted employment contracts signed this way since 2008, as long as they don't get in the way of inspections.",[97,172,174],{"id":173},"the-sii","The SII",[16,176,177],{},"Voku DTE talks directly to the SII, and the SII is precise about how:",[48,179,180,191,206,227],{},[51,181,182,183,186,187,190],{},"Every document is an ",[37,184,185],{},"XML file that must match the SII's schemas",", signed with ",[37,188,189],{},"XMLDSIG",", with strict rules on algorithms and character encoding.",[51,192,193,194,197,198,201,202,205],{},"Each document carries an ",[37,195,196],{},"electronic stamp"," (the TED), built from the ",[37,199,200],{},"CAF",": the file in which the SII authorizes a range of folios for each company and document type. On paper, the stamp becomes a ",[37,203,204],{},"PDF417"," barcode.",[51,207,208,209,212,213,216,217,220,221,226],{},"Connecting takes a ",[37,210,211],{},"digital certificate",": request a seed, sign it, receive a token. Invoices go through ",[37,214,215],{},"SOAP"," services; receipts use a newer ",[37,218,219],{},"REST"," API and have to reach the SII ",[23,222,225],{"href":223,"rel":224},"https:\u002F\u002Fwww.sii.cl\u002Fnormativa_legislacion\u002Fresoluciones\u002F2020\u002Freso74.pdf",[27],"within one hour"," of being issued.",[51,228,229,230,235],{},"Before issuing for real, there is a ",[23,231,234],{"href":232,"rel":233},"https:\u002F\u002Fwww.sii.cl\u002Ffactura_electronica\u002Ffactura_mercado\u002Fproceso_certificacion.htm",[27],"certification process"," in six stages: a test set, a simulation, information exchange, print samples, a declaration of compliance and, finally, registration as an electronic issuer.",[16,237,238],{},"Voku DTE is going through that process now.",[11,240,242],{"id":241},"multi-tenant-from-day-one","Multi-tenant from day one",[16,244,245,246,249],{},"None of the three products was built for one café. Every app is ",[37,247,248],{},"multi-tenant",": many businesses share the same software, and none of them can ever see another's data. In this field, that goes beyond keeping data apart:",[48,251,252,258,264,270],{},[51,253,254,257],{},[37,255,256],{},"Taxes."," Each company has its own CAF files and folio ranges, and its documents are signed with the certificate of someone authorized for that company. A folio used twice, or used by the wrong company, is a tax problem, not a bug.",[51,259,260,263],{},[37,261,262],{},"Labor."," Each employer has its own workers, shifts and rules, its own audit trail, and its own inspection access for the Dirección del Trabajo. The provider also has to report its client companies to the DT every month.",[51,265,266,269],{},[37,267,268],{},"People."," Voku Team separates access by role (worker, employer, HR, administrator), with a read-only portal for labor inspectors.",[51,271,272,275],{},[37,273,274],{},"Businesses with more than one location."," Voku is priced per branch, for businesses with several locations.",[16,277,278],{},"Technically, the isolation is per row: every record carries the unique ID of the company it belongs to.",[11,280,282],{"id":281},"how-it-was-built","How it was built",[16,284,285,286,291],{},"Voku has one developer. Felipe spent most of the time writing tasks in ",[23,287,290],{"href":288,"rel":289},"https:\u002F\u002Flinear.app",[27],"Linear",", with the agents connected to it.",[48,293,294,306,312,318],{},[51,295,296,299,300,305],{},[37,297,298],{},"Code:"," ",[23,301,304],{"href":302,"rel":303},"https:\u002F\u002Fclaude.com\u002Fclaude-code",[27],"Claude Code",", with several versions of Claude Sonnet and Claude Opus, and Claude Fable.",[51,307,308,311],{},[37,309,310],{},"Brand:"," Claude Design, for the whole brand (more on it below).",[51,313,314,317],{},[37,315,316],{},"Landing pages:"," Google Antigravity, for voku.cl and voku.team.",[51,319,320,323,324,327,328,331],{},[37,321,322],{},"Checking the work:"," agents whose job is to validate what the others build. Each app's repository has ",[37,325,326],{},"more than 3,000 unit tests",", and about ",[37,329,330],{},"150 end-to-end tests"," cover the flows that can't break.",[11,333,335],{"id":334},"the-brand","The brand",[16,337,338],{},"Claude Design made Voku's whole brand. Its manual sums it up in one line: one parent brand, three products, a single symbol.",[340,341],"image-row",{":images":342,"caption":343,"min":344,"height":345},"[{\"src\":\"\u002Fnotebook\u002Fexp-001\u002Flockup-voku.svg\",\"alt\":\"Voku logo: the orange symbol and the word voku.\"},{\"src\":\"\u002Fnotebook\u002Fexp-001\u002Flockup-team.svg\",\"alt\":\"Voku Team logo: the blue symbol and the word team.\"},{\"src\":\"\u002Fnotebook\u002Fexp-001\u002Flockup-dte.svg\",\"alt\":\"Voku DTE logo: the green symbol and the word dte.\"}]","The three logos, in their version for dark backgrounds.","180px","60px",[48,347,348,367,383],{},[51,349,350,353,354,358,359,362,363,366],{},[37,351,352],{},"One symbol, three colors."," The symbol is identical in all three products, down to the same path. Only the fill changes: orange ",[355,356,357],"code",{},"#FF6B35"," for Voku, blue ",[355,360,361],{},"#1A56DB"," for Team, green ",[355,364,365],{},"#0B7A4B"," for DTE. The symbol carries the recognition; the color tells the products apart.",[51,368,369,299,372,375,376,29,379,382],{},[37,370,371],{},"A wordmark that ends in a dot.",[62,373,374],{},"voku.",", ",[62,377,378],{},"team.",[62,380,381],{},"dte."," are set in General Sans at weight 650 and converted to outlines, so they look the same everywhere, with or without the font. The dot is parametric: its size, height and distance from the text all come from the type size, and it is never placed by hand.",[51,384,385,388,389,392],{},[37,386,387],{},"\"por voku.\""," Team and DTE carry the line ",[62,390,391],{},"por voku."," (\"by voku.\") in footers, splash screens and about pages, never on the logo itself. Its dot is always Voku orange.",[340,394],{":images":395,"caption":396,"min":397,"max":398},"[{\"src\":\"\u002Fnotebook\u002Fexp-001\u002Fapp-icon-voku.svg\",\"alt\":\"Voku app icon\"},{\"src\":\"\u002Fnotebook\u002Fexp-001\u002Fapp-icon-team.svg\",\"alt\":\"Voku Team app icon\"},{\"src\":\"\u002Fnotebook\u002Fexp-001\u002Fapp-icon-dte.svg\",\"alt\":\"Voku DTE app icon\"}]","App icons.","80px","112px",[16,400,401],{},"Each product has its own kit:",[48,403,404,410,419],{},[51,405,406,409],{},[37,407,408],{},"18 SVG logos",": symbol, wordmark, horizontal and vertical lockups, and app icon, in color, black, white and a version for dark backgrounds. Every one also comes as a PNG.",[51,411,412,29,415,418],{},[37,413,414],{},"Favicons",[37,416,417],{},"social cards"," of 1200 × 630.",[51,420,421,424],{},[37,422,423],{},"Design tokens",": a color scale from 50 to 900, shared neutrals, semantic colors and a type scale, as CSS, JSON, Tailwind and JavaScript.",[16,426,427],{},"All of it is tied together by a brand manual in a single HTML file: the family, the symbol, the wordmark and the dot, lockups, monochrome and dark backgrounds, color, typography, and correct and incorrect uses.",[340,429],{":images":430,"caption":431,"min":432,":framed":433},"[{\"src\":\"\u002Fnotebook\u002Fexp-001\u002Fcard-voku.png\",\"alt\":\"Voku social card: voku., El POS más simple de Chile\"},{\"src\":\"\u002Fnotebook\u002Fexp-001\u002Fcard-team.png\",\"alt\":\"Voku Team social card: team., Asistencia y RR.HH. con respaldo legal, por voku.\"},{\"src\":\"\u002Fnotebook\u002Fexp-001\u002Fcard-dte.png\",\"alt\":\"Voku DTE social card: dte., Boletas y facturas electrónicas para el SII, por voku.\"}]","The social cards. Team and DTE carry the por voku. line.","200px","true",[11,435,437],{"id":436},"seven-months-in-commits","Seven months in commits",[16,439,440],{},"We didn't keep a record of the tokens. What we know is that the model was almost always Opus, and that for the first three months we hit the weekly usage limit almost every week, with five projects running at the same time, all of them Voku.",[16,442,443,444,447,448],{},"The git history does keep a record: ",[37,445,446],{},"1,902 commits"," across seven repositories between March and October 2026. ",[37,449,450],{},"1,647 of them (87%) were co-authored by Claude.",[452,453],"stacked-weeks",{":band":454,":rows":455,":series":456,"source":457,"title":458},"{\"from\":\"2026-03-02\",\"to\":\"2026-05-25\",\"label\":\"First three months: Opus, at the weekly limit almost every week\"}","[[\"2026-03-02\",4,0,0],[\"2026-03-09\",0,0,0],[\"2026-03-16\",1,1,0],[\"2026-03-23\",63,0,1],[\"2026-03-30\",25,5,10],[\"2026-04-06\",27,1,19],[\"2026-04-13\",56,0,0],[\"2026-04-20\",29,2,0],[\"2026-04-27\",64,1,0],[\"2026-05-04\",25,36,8],[\"2026-05-11\",3,113,9],[\"2026-05-18\",72,78,0],[\"2026-05-25\",40,7,0],[\"2026-06-01\",10,0,0],[\"2026-06-08\",68,48,0],[\"2026-06-15\",35,43,0],[\"2026-06-22\",9,0,0],[\"2026-06-29\",15,4,0],[\"2026-07-06\",9,28,0],[\"2026-07-13\",97,37,11],[\"2026-07-20\",172,25,8],[\"2026-07-27\",40,26,0],[\"2026-08-03\",18,1,0],[\"2026-08-10\",8,5,0],[\"2026-08-17\",6,6,26],[\"2026-08-24\",26,15,13],[\"2026-08-31\",50,42,3],[\"2026-09-07\",18,28,5],[\"2026-09-14\",9,17,0],[\"2026-09-21\",14,56,2],[\"2026-09-28\",47,13,0],[\"2026-10-05\",20,3,0],[\"2026-10-12\",35,31,0]]","[{\"label\":\"Voku\",\"color\":\"#EB6534\"},{\"label\":\"Voku Team\",\"color\":\"#1A56DB\"},{\"label\":\"Voku DTE\",\"color\":\"#1AA072\"}]","Source: the git history of the seven Voku repositories, all branches. Landing pages count toward their product, and the brand kit toward Voku. Colors follow the brand, adjusted so they can be told apart with color blindness.","Commits per week, by product",[11,460,462],{"id":461},"what-went-wrong","What went wrong",[16,464,465],{},"Building wasn't the hard part. Validating was.",[16,467,468],{},"The agents could build, but they lacked context about the other methods in the code. Our first answer was unit tests, lots of them. They helped at the beginning, but as the code grew, many of them no longer tested what they were supposed to validate.",[16,470,471],{},"So we added end-to-end tests for the flows that are essential in each app, checked from start to finish. The unit tests are still there; the end-to-end tests guard the flows that can't break.",{"title":473,"searchDepth":474,"depth":474,"links":475},"",2,[476,477,478,484,485,486,487,488],{"id":13,"depth":474,"text":14},{"id":42,"depth":474,"text":43},{"id":91,"depth":474,"text":92,"children":479},[480,482,483],{"id":99,"depth":481,"text":100},3,{"id":158,"depth":481,"text":159},{"id":173,"depth":481,"text":174},{"id":241,"depth":474,"text":242},{"id":281,"depth":474,"text":282},{"id":334,"depth":474,"text":335},{"id":436,"depth":474,"text":437},{"id":461,"depth":474,"text":462},"Felipe Schneeberger bought a café and needed software to run it. We asked whether agents could build something better than what was on the market. The result is Voku, a brand and three products.","md",[492,495,498,501,504,507,510],{"date":493,"note":494},"2026-03-03","First commit, for the voku.cl landing page.",{"date":496,"note":497},"2026-03-16","First commit of Voku Team.",{"date":499,"note":500},"2026-03-23","First commit of Voku.",{"date":502,"note":503},"2026-03-29","First commit of Voku DTE.",{"date":505,"note":506},"2026-05-02","The brand kit, made with Claude Design, gets its own repository.",{"date":508,"note":509},"2026-05-07","First commit for the voku.team landing page.",{"date":511,"note":512},"2026-10-17","Voku Team and Voku DTE are going through their certifications with the Dirección del Trabajo and the SII.",{},true,"\u002Fnotebook\u002Fexp-001-voku-built-with-agents",7,{"title":6,"description":489},"creation","notebook\u002Fexp-001-voku-built-with-agents",[521,522,248,523,524],"agents","claude code","testing","voku","pL3lgRhF80kOKdi3zhFrNiQPtDv4UbPmpiulpKd_b_M",1792209245156]